cmake_minimum_required(VERSION 3.18)
project(ModernCpp)

set(CMAKE_CXX_STANDARD 14)

########################################################################################################################
# 对象模型 --> 对象
add_executable(ObjectModel-Object src/ObjectModel/Test01-Object.cpp)

########################################################################################################################
# 类的设计 --> 类
add_executable(Class-CopyControl src/Class/Test01-CopyControl.cpp
        src/Class/HasPtrLikeValue.cpp src/Class/HasPtrLikeValue.hpp
        src/Class/HasPtrLikePtrUsePointer.cpp src/Class/HasPtrLikePtrUsePointer.hpp
        src/Class/HasPtrLikePtrUseSmartPointer.cpp src/Class/HasPtrLikePtrUseSmartPointer.hpp)

# 类的设计 --> 实例
add_executable(Class-CopyControlDemo
        src/Class-CopyControlDemo/Message.cpp src/Class-CopyControlDemo/Message.hpp
        src/Class-CopyControlDemo/Folder.cpp src/Class-CopyControlDemo/Folder.hpp)

########################################################################################################################
# 动态内存
add_executable(DynamicMemory src/DynamicMemory/DynamicMemoryTest01.cpp)
add_executable(DynamicMemory2 src/DynamicMemory/DynamicMemoryTest02.cpp
        src/DynamicMemory/Widget.cpp src/DynamicMemory/Widget.hpp)